#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
#define FOR(i,a,n) for(int i=a,_n(n);i<_n;++i)
#define REP(i,n) FOR(i,0,n)

using namespace std;

int si[110];
int sum;
double Comb(int n,int k)
{
	double ret = 1;
	REP(i,k) ret*=(double)(n-i)/(i+1);
	//printf("comb(%d,%d) = %f\n",n,k,ret);
	return ret;
}
int main()
{
	int n,m,h;
	while(cin>>n>>m>>h)
	{
		sum = 0;
		REP(i,m) scanf("%d",si+i+1),sum+=si[i+1];
		if(n>sum)
		{
			printf("%.9f\n",-1.0);
			continue;
		}
		double ans = 0;
		int k = min(n-1,si[h]-1);
		FOR(i,1,k+1)
		{
			if(n-i-1>sum-si[h]) continue;
			ans+= Comb(si[h]-1,i)*Comb(sum-si[h],n-i-1)/Comb(sum-1,n-1);
		}
		//if(si[h]-1==0) ans = 0;
		printf("%.9f\n",ans);
	}
	return 0;
}
